A virtualized computing environment may be implemented to allow a user access or update data stored in a remote location by way of accessing a storage device that is connected to a local computing machine via a wide area communications network, such as the Internet. The above infrastructure, commonly referred to as cloud storage, advantageously helps users access their data from any machine with some limitations.http://en.wikipedia.org/wiki/Server_%28computing %29
For example, to update data stored on a remote storage device, a user must generally download the target data or file (e.g., a Microsoft (MS) Word™ file) from the remote storage device to a local storage device and locally launch a software application (e.g., an MS Word editor) that can read, render and manipulate the data on the local computing machine. Thereafter, the locally stored version of the data is uploaded and stored on the remote storage. All the above actions, typically, require some sort of overt user interaction and knowledge of the various platforms.
Further, in the above scenario, the proper software application (e.g., an MSWord text editor) for accessing a certain type of file (e.g., an MS Word file) or data needs to be pre-installed on the local computing machine. Otherwise, the data may not be properly rendered or manipulated. Moreover, the particular software application must be compatible with the underlying operating system running on the local computing machine to properly operate. For example, a Windows™ MS Word editor would not run on a machine with a MAC OS platform.
To overcome the above dependencies, a system may be implemented to provision a software application on a remote server such that, regardless of the limitations of the local operating system or computing machine, the software application is launched remotely on a virtual operating environment that supports the remote software application as if it was locally launched. Use of remotely provisioned software applications is unfortunately not as intuitive and seamless as software applications that are designed to run locally in their native environment.
For example, a user may be required to download a data file from a remote location, if the file is not locally available, and upload the same file to the server or network on which the remotely provisioned software is running. Most, if not all the above procedures, need to be done either manually or semi-manually by the user and typically require a user to have knowledge of the underlying computing infrastructure. As such, the user may need to learn how to: access the remote storage, download the target data, launch the target software application, etc.
Even further, once the target data is manipulated, a user may need to download the updated data files, from the location where the remote software application is running, back to the local machine and then take additional step to upload the data to a remote data storage space of choice, making the proper transformations to ensure that the updated data files are compatible for storage at the destination. Data security and privacy are also consistent threats in the scenarios defined above as the data has to transition through multiple networks and platforms.